package com.ruoyi.system.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.MenuItemMapper;
import com.ruoyi.system.domain.MenuItem;
import com.ruoyi.system.service.IMenuItemService;

import static com.ruoyi.common.utils.SecurityUtils.getUserId;
import static com.ruoyi.common.utils.SecurityUtils.getUsername;

/**
 * 菜单菜品Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-03-14
 */
@Service
public class MenuItemServiceImpl implements IMenuItemService 
{
    @Autowired
    private MenuItemMapper menuItemMapper;

    /**
     * 查询菜单菜品
     * 
     * @param id 菜单菜品主键
     * @return 菜单菜品
     */
    @Override
    public MenuItem selectMenuItemById(Long id)
    {
        return menuItemMapper.selectMenuItemById(id);
    }

    /**
     * 查询菜单菜品列表
     * 
     * @param menuItem 菜单菜品
     * @return 菜单菜品
     */
    @Override
    public List<MenuItem> selectMenuItemList(MenuItem menuItem)
    {
        return menuItemMapper.selectMenuItemList(menuItem);
    }


    @Override
    public int setCheckNumberById(Long id, Integer checkNumber) {
        return menuItemMapper.setCheckNumberById(id, checkNumber);
    }

    /**
     * 新增菜单菜品
     * 
     * @param menuItem 菜单菜品
     * @return 结果
     */
    @Override
    public int insertMenuItem(MenuItem menuItem)
    {
        menuItem.setIsDelete(0);
        menuItem.setCreateBy(getUsername());
        menuItem.setCheckNumber(0);
        menuItem.setCreateTime(DateUtils.getNowDate());
        menuItem.setCreateById(getUserId());
        return menuItemMapper.insertMenuItem(menuItem);
    }

    /**
     * 修改菜单菜品
     * 
     * @param menuItem 菜单菜品
     * @return 结果
     */
    @Override
    public int updateMenuItem(MenuItem menuItem)
    {
        menuItem.setUpdateBy(getUsername());
        menuItem.setUpdateTime(DateUtils.getNowDate());
        return menuItemMapper.updateMenuItem(menuItem);
    }

    /**
     * 批量删除菜单菜品
     * 
     * @param ids 需要删除的菜单菜品主键
     * @return 结果
     */
    @Override
    public int deleteMenuItemByIds(Long[] ids)
    {
        return menuItemMapper.deleteMenuItemByIds(ids);
    }

    /**
     * 删除菜单菜品信息
     * 
     * @param id 菜单菜品主键
     * @return 结果
     */
    @Override
    public int deleteMenuItemById(Long id)
    {
        return menuItemMapper.deleteMenuItemById(id);
    }
}
